package com.wulian.common.util;

import java.io.PrintWriter;
import java.io.StringWriter;

/**
 * @ClassName: ExceptionStackTraceUtil
 * @Description: 异常工具类
 * @author lb
 * @date 2016年6月29日 上午11:29:09
 * 
 */
public class ExceptionStackTraceUtil {

	/**
	 * @Description: 将异常的的堆栈信息转换成字符串
	 * @author libo
	 * @date 2016年6月29日
	 * @param @param e
	 * @param @return
	 * @return String
	 * @throws
	 */
	@SuppressWarnings("unused")
	public static String getStackTraceAsString(Throwable e) {
		// StringWriter将包含堆栈信息
		StringWriter stringWriter = new StringWriter();
		// 必须将StringWriter封装成PrintWriter对象，
		// 以满足printStackTrace的要求
		PrintWriter printWriter = new PrintWriter(stringWriter);
		// 获取堆栈信息
		e.printStackTrace(printWriter);
		// 转换成String，并返回该String
		StringBuffer error = stringWriter.getBuffer();
		return error.toString();
	}
	
	public static void main(String[] args) {
		try {
			throw new NullPointerException("哈哈");
		} catch (Exception e) {
			String errorMSG = ExceptionStackTraceUtil.getStackTraceAsString(e);
			System.out.println(errorMSG);
		}
	}
		
}
